acelera1 <- read.csv( "Camino a la oficina Grabaci_n 1.csv")

Tranformación de la variable tiempo

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
acelera1 <- acelera1 %>%
        mutate(fecha= as.POSIXct(timestamp/1000, origin = "1970-01-01"))

Aceleración en X

library(ggplot2)
ggplot(acelera1, aes(fecha, AccX)) +
  geom_line()
## Warning: Removed 1 rows containing missing values (geom_path).

Aceleración en Y

library(ggplot2)
ggplot(acelera1, aes(fecha, AccY)) +
  geom_line()

Aceleración en Z

library(ggplot2)
ggplot(acelera1, aes(fecha, AccZ)) +
  geom_line()
## Warning: Removed 1 rows containing missing values (geom_path).

summary(acelera1)
##    timestamp              AccX              AccY              AccZ        
##  Min.   :1.509e+12   Min.   :-14.704   Min.   :-22.911   Min.   :-31.803  
##  1st Qu.:1.509e+12   1st Qu.:  1.693   1st Qu.:-11.307   1st Qu.: -4.074  
##  Median :1.509e+12   Median :  2.841   Median : -8.546   Median : -2.767  
##  Mean   :1.509e+12   Mean   :  2.699   Mean   : -8.463   Mean   : -2.671  
##  3rd Qu.:1.509e+12   3rd Qu.:  4.050   3rd Qu.: -5.888   3rd Qu.: -1.543  
##  Max.   :1.509e+12   Max.   :  9.193   Max.   :  5.687   Max.   : 13.928  
##                      NA's   :1038      NA's   :1007      NA's   :1019     
##      fecha                    
##  Min.   :2017-10-26 05:47:48  
##  1st Qu.:2017-10-26 05:48:10  
##  Median :2017-10-26 05:49:56  
##  Mean   :2017-10-26 05:49:37  
##  3rd Qu.:2017-10-26 05:50:54  
##  Max.   :2017-10-26 05:51:50  
## 

Cálculo de la aceleración promedio por décimas de segundo

library(dplyr)
acelera1_2 <- acelera1 %>%
  mutate(tiempo = timestamp %/% 100) %>%
  group_by(tiempo) %>%
  summarise(AccX = mean(AccX, na.rm = TRUE),
            AccY = mean(AccY, na.rm = TRUE),
            AccZ = mean(AccZ, na.rm = TRUE))

Gráfica conjunta por décimas de segundo

matplot(acelera1_2$tiempo, acelera1_2[, 2:4], type = "l")

Cálculo de la aceleración total

library(dplyr)
acelera1_2 <- acelera1_2 %>%
            mutate(accT = sqrt(AccX ^ 2 + AccY ^ 2 + AccZ ^ 2))
library(ggplot2)
ggplot(acelera1_2, aes(tiempo, accT)) + geom_line()

Verificación de cambios en periodos de tiempo

diff(acelera1_2$tiempo)
##    [1]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##   [18]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##   [35]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##   [52]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##   [69]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##   [86]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [103]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [120]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [137]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [154]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [171]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [188]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [205]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [222]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [239]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [256]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [273]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [290]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [307]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [324]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [341]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [358]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [375]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [392]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [409]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [426]   1   1   1   1   1   8   1   1  49   1   1   1   1   1   1   1   1
##  [443]   1  91   1   1   1   1   1   1   3   1   1  89   1   1   1   1   1
##  [460]   1   1   1   1  61   1   1   1   1   1   1   1   1   1   1   1   1
##  [477]   1   1   1   1   1   1   1 111   1   1   1   1   1   1   1   1   1
##  [494]   1   1   1   1   1   1   1   1 173   1   1   1   1   1   1   1   1
##  [511]   1   4   1   1   1   1   1  51   1   1   1   1   1   1  44   1   1
##  [528]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [545]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [562]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [579]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [596]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [613]   1   1   1   1   1   1   1  37   1   1   1   1   1   1   1   1   1
##  [630]  10   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [647]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [664]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [681]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [698]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [715]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [732]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [749]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [766]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [783]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [800]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [817]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [834]   1   1   1   1   1   1   1   1   1   4   1   1   1   1   1   1   1
##  [851]   1   2   1   1   2   1   1  28   2   1   1   1   1   1 154   1   1
##  [868]   1  87   1   1   1   1   1   1   1  32   1   1   1   1   1   1   1
##  [885]   1   1   1   1   1   1   1   1   1 144   1   1   1   1   1   1   1
##  [902]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [919]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [936]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [953]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [970]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
##  [987]   1   1   7   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1004]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1021]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1038]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1055]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1072]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1089]   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1   1
## [1106]   1   1   1   1   1   1   1   1   1   1   1   1   1   1 100   1   1
## [1123]   1   1   1   1   1   1   1   1   1   1   1   1   2   1   1   1   1
## [1140]   1   1   1   1   1   1   1
cambios <- which(diff(acelera1_2$tiempo) != 1)

cambios
##  [1]  431  434  444  451  454  464  484  502  512  518  525  620  630  843
## [15]  852  855  858  859  865  869  877  894  989 1120 1135

Selección de un segmento “completo”

acelera1_s1 <- acelera1_2[1:cambios[1], ]

Gráfica de la aceleración total en un segmento de tiempo.

ggplot(acelera1_s1, aes(tiempo, accT)) + geom_line()

Periodograma

spec1_s1 <- spec.pgram(acelera1_s1$accT, las = 1)

Selección de la frecuencia con el valor máximo del espectro.

maxFrec1_s1 <- spec1_s1$freq[which(spec1_s1$spec == max(spec1_s1$spec))]
maxFrec1_s1
## [1] 0.2037037

Cálculo del tiempo total y números de periodos.

tiempoS1 <- diff(range(acelera1_s1$tiempo))
numPeriodos <- tiempoS1 * maxFrec1_s1 

tiempoS1
## [1] 430
numPeriodos
## [1] 87.59259
tiempoT <- diff(range(acelera1_2$tiempo))
numPeriodos <- tiempoT * maxFrec1_s1 

tiempoT
## [1] 2416
numPeriodos
## [1] 492.1481

Cálculo de la longitud del paso

distancia1 <- 301.20
longPaso1_s1 <- 301.20/numPeriodos
longPaso1_s1
## [1] 0.6120108

Análisis del segundo segmento

acelera1_s2 <- acelera1_2[cambios[13]:cambios[14], ]
ggplot(acelera1_s2, aes(tiempo, accT)) + geom_line()

spec1_s2 <- spec.pgram(acelera1_s2$accT, las = 1)

maxFrec1_s2 <- spec1_s2$freq[which(spec1_s2$spec == max(spec1_s2$spec))]
maxFrec1_s2
## [1] 0.2037037
tiempoS2 <- diff(range(acelera1_s2$tiempo))
numPeriodos <- tiempoS2 * maxFrec1_s2

tiempoS2
## [1] 222
numPeriodos
## [1] 45.22222
tiempoT <- diff(range(acelera1_2$tiempo))
numPeriodos <- tiempoT * maxFrec1_s2

tiempoT
## [1] 2416
numPeriodos
## [1] 492.1481
distancia1 <- 301.20
longPaso1_s2 <- 301.20/numPeriodos
longPaso1_s2
## [1] 0.6120108

Análisis del tercer segmento

acelera1_s3 <- acelera1_2[cambios[22]:cambios[23], ]
(pos <- which(is.na(acelera1_s3$accT)))
## [1] 2
acelera1_s3 <- acelera1_s3[3:nrow(acelera1_s3), ]

ggplot(acelera1_s3, aes(tiempo, accT)) + geom_line()

spec1_s3 <- spec.pgram(acelera1_s3$accT, las = 1)

maxFrec1_s3 <- spec1_s3$freq[which(spec1_s3$spec == max(spec1_s3$spec))]
maxFrec1_s3
## [1] 0.1979167
tiempoS3 <- diff(range(acelera1_s3$tiempo))
numPeriodos <- tiempoS3 * maxFrec1_s2

tiempoS3
## [1] 93
numPeriodos
## [1] 18.94444
tiempoT <- diff(range(acelera1_2$tiempo))
numPeriodos <- tiempoT * maxFrec1_s2

tiempoT
## [1] 2416
numPeriodos
## [1] 492.1481
distancia1 <- 301.20
longPaso1_s3 <- 301.20/numPeriodos
longPaso1_s3
## [1] 0.6120108

Análisis conjunto del primer segemento

(prom_maxFrec1 <- mean(c(maxFrec1_s1, maxFrec1_s2, maxFrec1_s3)))
## [1] 0.2017747
(ds_maxFrec1 <-   sd(c(maxFrec1_s1, maxFrec1_s2, maxFrec1_s3)))
## [1] 0.003341147
(tiempoTotal <- acelera1$fecha[nrow(acelera1)] - acelera1$fecha[1])
## Time difference of 4.027783 mins
(numPeriodosT <- as.vector(tiempoTotal)*60*10 * prom_maxFrec1)
## [1] 487.6228
(longPasoP1 <- distancia1/as.vector(numPeriodosT))
## [1] 0.6176905

Lecturas de las bases de datos

Mapa del camino 2

Mapa del camino 3

camino2 <- read.csv("Camino a la oficina 2 Grabaci_n 1.csv")
camino3 <- read.csv("Salida de la un_versidad Grabaci_n 1.csv")
distancia2 <- 90.85
distancia3 <- 234.08
library(dplyr)
camino2 <- camino2 %>%
        mutate(fecha= as.POSIXct(timestamp/1000, origin = "1970-01-01"))
camino2_1 <- camino2 %>%
  mutate(tiempo = timestamp %/% 100) %>%
  group_by(tiempo) %>%
  summarise(AccX = mean(AccX, na.rm = TRUE),
            AccY = mean(AccY, na.rm = TRUE),
            AccZ = mean(AccZ, na.rm = TRUE))
camino2_1 <- camino2_1 %>%
            mutate(accT = sqrt(AccX ^ 2 + AccY ^ 2 + AccZ ^ 2))
library(dplyr)
camino3 <- camino3 %>%
        mutate(fecha= as.POSIXct(timestamp/1000, origin = "1970-01-01"))
camino3_1 <- camino3 %>%
  mutate(tiempo = timestamp %/% 100) %>%
  group_by(tiempo) %>%
  summarise(AccX = mean(AccX, na.rm = TRUE),
            AccY = mean(AccY, na.rm = TRUE),
            AccZ = mean(AccZ, na.rm = TRUE))
camino3_1 <- camino3_1 %>%
            mutate(accT = sqrt(AccX ^ 2 + AccY ^ 2 + AccZ ^ 2))

Procesamiento del camino 2

library(ggplot2)
ggplot(camino2_1, aes(tiempo, accT)) + geom_line()

spec2 <- spec.pgram(camino2_1$accT, las = 1)

maxFrec2 <- spec2$freq[which(spec2$spec == max(spec2$spec))]
maxFrec2
## [1] 0.2041667
tiempoTotal_camino2 <- camino2$fecha[nrow(camino2)] - camino2$fecha[1]
as.vector(tiempoTotal_camino2) * 600
## [1] 713.1
as.vector(tiempoTotal_camino2) * 600 * maxFrec2
## [1] 145.5912
(longPaso2 <- distancia2/(as.vector(tiempoTotal_camino2) * 600 * maxFrec2))
## [1] 0.6240073

Procesamiento del camino 3

library(ggplot2)
ggplot(camino3_1, aes(tiempo, accT)) + geom_line()

spec3 <- spec.pgram(camino3_1$accT, las = 1)

maxFrec3 <- spec3$freq[which(spec3$spec == max(spec3$spec))]
maxFrec3
## [1] 0.19625
tiempoTotal_camino3 <- camino3$fecha[nrow(camino3)] - camino3$fecha[1]
as.vector(tiempoTotal_camino3) * 600
## [1] 1587.32
as.vector(tiempoTotal_camino3) * 600 * maxFrec3
## [1] 311.5116
(longPaso3 <- distancia3/(as.vector(tiempoTotal_camino3) * 600 * maxFrec3))
## [1] 0.7514328

Cálculo del tamaño de muestra

(mediaLongPasos <- mean(c(longPaso1_s1, longPaso1_s2, 
                          longPaso1_s3, longPaso2, longPaso3)))
## [1] 0.6422945
(desvestPasos <- sd(c(longPasoP1, longPaso2, longPaso3)))
## [1] 0.07545879

Tamaños de la muestra

library(pwr)
diferencia <- 0.05
d <- diferencia/desvestPasos
potencia1 <- pwr.t.test(d = d, power = 0.8)
potencia1$n
## [1] 36.73882
library(pwr)
potencia2 <- pwr.t.test(n = 50, power = 0.8)
d <- potencia2$d
(diferencia <- desvestPasos * d)
## [1] 0.04269896